// 引入redux(combineReducers是redux提供的合并reducer的一个方法)
import {createStore,applyMiddleware,combineReducers} from 'redux'
// 引入countReducer厨师的文件
import countRdeucer from './reducers/countReducer'
import movieReducer from './reducers/movieReducer'
// 引入异步函数处理中间件,处理异步action的中间件(当store接收到action异步函数的时候,会交给这个中间件去操作,我们在中间多加一层store.dispatch)
// 中间件帮助我们处理这个函数,一般函数中会有一个store.dispatch(),他会把这个对象返回给我们的stroe,这个时候就可以正常执行了
import thunk from 'redux-thunk'

console.log('store被调用');

// 使用redux提供的combineReducers方法,合并多个reducer
const allReducer=combineReducers({
        // 用变量分别去代表每一个reducer对象
        count: countRdeucer,
        movie: movieReducer
    })

// 创建store(酒店),并提供对应的reducer(厨师)
// createStore可以接受两个参数,第一个是创建的reducer
// 第二个是applyMiddleware方法,是用来调用我们的异步函数处理中间thunk的
// 调用之后处理完成会返回正常的对象数据给store
const store  = createStore(allReducer, applyMiddleware(thunk))


export default store